零刻 EQ14-N150 开启核显 SR-IOV 虚拟化
一、概述
SR-IOV(Single Root I/O Virtualization)是一种硬件虚拟化技术,允许将单个物理 GPU 虚拟出多个独立的虚拟功能(VF),分别分配给不同的虚拟机使用。对于 Intel 11 代及以后的 CPU,Intel 全面转向了 SR-IOV 方案,性能损耗极低,最多可切分出 7 个虚拟功能。
二、硬件
- 设备:零刻 EQ14(此次验证设备)
- CPU:Intel N150(Twin Lake 架构)
- 系统:Proxmox VE 9.2.3
- 驱动:
i915-sriov-dkms2026.05.06 版本
三、BIOS 设置
重启设备,开机时按 Delete 键进入 BIOS,确保以下选项正确设置:
| 选项 | 状态 |
|---|---|
| Intel VMX(虚拟化技术) | Enabled(开启) |
| VT-d | Enabled(开启) |
| IOMMU | Enabled(开启) |
| SR-IOV | Enabled(开启) |
| Secure Boot(安全启动) | Disabled(关闭) |
保存设置并退出 BIOS
四、PVE 系统配置
4.1 更新系统并安装依赖
在 PVE 的 Shell 中执行以下命令:
apt updateapt install -y build-essential git dkms sysfsutils proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r) intel-gpu-tools4.2 安装 i915-sriov-dkms 驱动
i915-sriov-dkms 是社区维护的 Linux i915 驱动扩展,为 Intel 核显添加了 SR-IOV 支持。
根据自己内核版本 7.0.6,下载对应的 2026.05.06 版本驱动:
wget https://github.com/strongtz/i915-sriov-dkms/releases/download/2026.05.06/i915-sriov-dkms_2026.05.06_amd64.debdpkg -i i915-sriov-dkms_2026.05.06_amd64.deb📌 注意:如果你的 PVE 内核版本不同,请访问 strongtz/i915-sriov-dkms Releases 页面,选择与内核版本匹配的驱动包。
4.3 配置 GRUB 引导参数
编辑 GRUB 配置文件:
nano /etc/default/grub找到 GRUB_CMDLINE_LINUX_DEFAULT,修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe"参数说明:
intel_iommu=on:开启 IOMMUiommu=pt:提升直通性能i915.enable_guc=3:启用 GuC 和 HuC 微码,用于硬件加速i915.max_vfs=7:设置最大可创建的虚拟功能数量上限module_blacklist=xe:屏蔽原生 xe 驱动,强制使用 DKMS 版本
4.4 设置开机自动创建虚拟功能
创建 systemd 服务,确保每次开机自动创建指定数量的 VF(此处以 4 个为例):
cat > /etc/systemd/system/sriov-vf.service <<EOF[Unit]Description=Create SR-IOV VFs for iGPUBefore=network.target
[Service]Type=oneshotExecStart=/bin/sh -c "echo 4 > /sys/bus/pci/devices/0000:00:02.0/sriov_numvfs"RemainAfterExit=yes
[Install]WantedBy=multi-user.targetEOF
systemctl enable sriov-vf.service📌 如需调整虚拟显卡数量,修改
echo 4中的数字即可。
4.5 重启 PVE
reboot五、验证 SR-IOV 是否成功
5.1 确认 i915 驱动已加载
lsmod | grep i915应有 i915 模块显示。
5.2 确认虚拟功能已创建
lspci | grep VGA成功时输出类似:
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]00:02.1 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]00:02.2 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]00:02.3 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]00:02.4 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]其中 00:02.0 是物理主卡(保留给 PVE 宿主机使用),00:02.1 ~ 00:02.4 是刚刚创建的 4 个虚拟显卡。
5.3 检查 systemd 服务状态
systemctl status sriov-vf.service六、分配虚拟显卡给虚拟机
6.1 操作步骤
- 在 PVE Web 管理界面,选择目标虚拟机,点击 硬件 → 添加 → PCI 设备。
- 点原始设备,在设备列表中选择一个虚拟显卡(如
0000:00:02.1)。 - 不要勾选 所有功能,不要勾选“主 GPU”。
- 点击 新增。
⚠️ 绝对不要将
00:02.0(物理主卡),否则会导致 PVE 宿主机死机或黑屏。
6.2 虚拟机内安装驱动
- Windows 虚拟机:安装 Intel 核显驱动(从 Intel 官网下载对应版本)。
- Linux 虚拟机:安装对应的 i915 驱动。
七、常见问题排查
7.1 modprobe i915 报错 No such device
原因:内核命令行中存在 nomodeset,阻止了 i915 绑定设备。
解决:检查并清除所有 nomodeset 来源:
grep -r "nomodeset" /etc/default/grub* /etc/grub.d/7.2 echo 创建 VF 时报 I/O error
原因:i915 驱动未正确加载,或 sriov_numvfs 文件不存在。
解决:
- 确认
lsmod | grep i915有输出。 - 检查
dmesg | grep -i i915 | tail -30查看驱动加载日志。
7.3 Secure Boot 阻止驱动加载
如果 modprobe i915 报错 Key was rejected by service,说明 Secure Boot(安全启动) 未关闭。
解决:
- 进入 BIOS 确认 Secure Boot 已 Disabled。
7.4 内核更新后驱动失效
每次 PVE 内核更新后,DKMS 通常会自动重建模块。如未自动重建,可手动执行:
dkms autoinstallupdate-initramfs -u -k allreboot八、重要提醒
| 项目 | 说明 |
|---|---|
主卡 00:02.0 | 保留给 PVE 宿主机使用,禁止直通给任何虚拟机 |
| 无视频输出 | SR-IOV 虚拟显卡无法通过 HDMI/DP 输出画面,仅用于计算加速 |
| 驱动维护 | i915-sriov-dkms 是社区维护项目,非 Intel 官方驱动,需关注项目更新 |
| Secure Boot | 必须保持 关闭 状态,否则第三方驱动无法加载 |
| 备份数据 | 操作涉及系统底层配置,建议提前备份重要数据 |
九、参考资源
- strongtz/i915-sriov-dkms —— 核心驱动项目
- Upinel/PVE-Intel-vGPU —— PVE Intel vGPU 配置指南
- Intel 核显 SR-IOV 虚拟化 —— 原理解析